# ブックマーク登録APIクラス

require "rb/api.rb"
require "csv"

$KCODE = "UTF"

class RegisterAPI < API

    def initialize
        super
        print result_by_jsonp
    end

    def result_by_jsonp
        if check_auth then
            register
            attach_callback "{result: true}"
        else
            attach_callback "{result: false}"
        end
    end

    def register
        outfile = File.open(@bookmarks_file, 'a')
        CSV::Writer.generate(outfile) do |csv|
            csv << create_line
        end
        outfile.close
    end

    def create_line

        # タグ文字列をタブ区切りで単語に分ける。
        # タグ文字列前後のタブ、連続したタブ、単語前後の半角空白、はトリムする
        tags = @cgi["tags"].gsub(/^\t+/, "").gsub(/\t+$/, "").split(/\t+/)
        tags.collect! {|i| i.gsub(/^\s+/, "").gsub(/\s+$/, "").downcase()}
        tags.uniq!()
        tags.reject! {|i| i == ""}

        [@cgi["url"], @cgi["title"], tags.join("\t"), @cgi["comment"]]
    end

    def attach_callback(json_str)
        return 'Obm.registerAPICallBack(' + json_str + ');'
    end
end

